home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 11 / FM Towns Free Software Collection 11.iso / t_os / edu / kana / src / kana.bas next >
BASIC Source File  |  1995-08-15  |  6KB  |  174 lines

  1. 1000 '====================================================================
  2. 1010 '
  3. 1020 '                     『平仮名・片仮名の練習』
  4. 1030 '                                                by H.AOE  1995.07.06
  5. 1040 '====================================================================
  6. 1050 '
  7. 1060 *初期設定1
  8. 1070  COLOR 7,0,7,0:CLS                              '画面クリア
  9. 1080  DEFINT A-Z                                     '整数変数に設定
  10. 1090  CLEAR,,,,,300000:DEF FONT"システム   16ドット"   '文字フォント設定
  11. 1100  SCREEN 0    :SCREEN@ 0                         'グラフィック1画面
  12. 1110  WINDOW(0,0)-(639,479):VIEW(0,0)-(639,479)      '16色モード
  13. 1120  MOUSE 0:MOUSE 1,400,80,0                       'マウス初期化
  14. 1130  DIM YOMI(3000)                                 '発声用配列
  15. 1140 '
  16. 1150 *初期設定2
  17. 1160 '--------------------------------------------------------------------
  18. 1170 ' タイトル表示     ( 20, 20)-(399, 79)
  19. 1180 ' メインウインドウ ( 40,120)-(379,439)
  20. 1190 ' 五十音ボタン     (420, 60)-(619,459)
  21. 1200 ' 読み書きスイッチ (420, 20)-(529, 49)
  22. 1210 ' 終了ボタン       (540, 20)-(619, 49)
  23. 1220 ' 制御用変数    KANA=  0:平仮名      1:片仮名
  24. 1230 '               R_W=   0:書き方      1:読み方
  25. 1240 '               MOJI=  0:「あ」 ~  45:「ん」
  26. 1250 '               LOOP=  1:同一文字種  2:文字種を変更する
  27. 1260 '               SPEED= 1:低速  ~  2:標準 ~  5:最高速
  28. 1270 '--------------------------------------------------------------------
  29. 1280 '画面の初期化
  30. 1290  FOR A=0 TO 15
  31. 1300   PALETTE A,[0,0,0]
  32. 1310  NEXT
  33. 1320  VIEW(0,0)-(639,479),%2
  34. 1330  LOAD@"TIFF\TITLE_0.TIF", ( 20, 20)
  35. 1340  LOAD@"TIFF\MAIN_WIN.TIF",( 20,100)
  36. 1350  LOAD@"TIFF\GOJU_0.TIF",  (420, 60)
  37. 1360  LOAD@"TIFF\RW_0.TIF",    (420, 20)
  38. 1370  LOAD@"TIFF\EXIT_B.TIF",  (540, 20)
  39. 1380  GOSUB *PALETTE
  40. 1390 '変数の初期化
  41. 1400  KANA =0
  42. 1410  R_W  =0
  43. 1420  MOJI =0
  44. 1430  SPEED=2
  45. 1440 '
  46. 1450 *START
  47. 1460  MOUSE 1,,,0
  48. 1470  LOOP=1
  49. 1480  ON KANA+1 GOSUB *平仮名,*片仮名
  50. 1490  MOUSE 1,,,1
  51. 1500 '
  52. 1510 *MAIN
  53. 1520  WHILE MOUSE(2,0)=0:WEND
  54. 1530  WHILE MOUSE(2,0):WEND
  55. 1540  MX=MOUSE(4,0):MY=MOUSE(5,0)
  56. 1550  IF      MX>540 AND MX<619 AND MY> 20 AND MY< 49 THEN
  57. 1560   GOTO *EXIT
  58. 1570  ELSE IF MX> 22 AND MX< 37 AND MY>102 AND MY<117 THEN
  59. 1580   SPEED=SPEED-1
  60. 1590   IF SPEED<1 THEN SPEED=1
  61. 1600  ELSE IF MX>382 AND MX<397 AND MY>102 AND MY<117 THEN
  62. 1610   SPEED=SPEED+1
  63. 1620   IF SPEED>5 THEN SPEED=5
  64. 1630  ELSE IF MX>420 AND MX<529 AND MY> 20 AND MY< 49 THEN
  65. 1640   R_W=ABS(R_W-1)
  66. 1650   FILE$="TIFF\RW_"+MID$(STR$(R_W),2)+".TIF"
  67. 1660   LOAD@ FILE$,(420, 20)
  68. 1670  ELSE IF MX> 20 AND MX<399 AND MY> 20 AND MY< 79 THEN
  69. 1680   KANA=ABS(KANA-1):LOOP=2:MOUSE 1,,,0
  70. 1690  ELSE IF MX>420 AND MX<619 AND MY> 60 AND MY<459 THEN
  71. 1700   IF ((MX-420) MOD 40)<37 AND ((MY-60) MOD 40)<37 THEN GOSUB *SELECT
  72. 1710  ELSE IF MX> 40 AND MX<379 AND MY>120 AND MY<439 THEN
  73. 1720   GOSUB *DISPLAY
  74. 1730  ENDIF
  75. 1740  ON LOOP GOTO *MAIN,*START
  76. 1750 '
  77. 1760 *EXIT
  78. 1770  CLOSE
  79. 1780  END
  80. 1790 '
  81. 1800 *平仮名
  82. 1810 '--------------------------------------------------------------------
  83. 1820 ' データファイル、画面を平仮名に初期化する。
  84. 1830 '--------------------------------------------------------------------
  85. 1840  CLOSE
  86. 1850  LOAD@"TIFF\TITLE_0.TIF", ( 20, 20)
  87. 1860  LOAD@"TIFF\GOJU_0.TIF",  (420, 60)
  88. 1870  LINE( 42,122)-(377,437),PSET,%15,BF
  89. 1880  OPEN"R",#1,"(4)HIRAGANA.DAT"
  90. 1890  FIELD #1,2 AS PX$,2 AS PY$
  91. 1900  RETURN
  92. 1910 '
  93. 1920 *片仮名
  94. 1930 '--------------------------------------------------------------------
  95. 1940 ' データファイル、画面を片仮名に初期化する。
  96. 1950 '--------------------------------------------------------------------
  97. 1960  CLOSE
  98. 1970  LOAD@"TIFF\TITLE_1.TIF", ( 20, 20)
  99. 1980  LOAD@"TIFF\GOJU_1.TIF",  (420, 60)
  100. 1990  LINE( 42,122)-(377,437),PSET,%15,BF
  101. 2000  OPEN"R",#1,"(4)KATAKANA.DAT"
  102. 2010  FIELD #1,2 AS PX$,2 AS PY$
  103. 2020  RETURN
  104. 2030 '
  105. 2040 *DISPLAY
  106. 2050 '--------------------------------------------------------------------
  107. 2060 ' 1.データファイルに記録された座標に従って、連続的に円を描いていく
  108. 2070 '   ことで、文字を筆順どおりにダイナミックに表示する。
  109. 2080 '   ただし、R_W=0 のときだけ。
  110. 2090 '   COL:文字の色 ( 0:灰色  1:黒色 )
  111. 2100 ' 2.文字の読みを発声する。
  112. 2110 '--------------------------------------------------------------------
  113. 2120  GOSUB *LOAD_YOMI
  114. 2130  IF R_W=0 THEN
  115. 2140   MOUSE 1,,,0
  116. 2150   A=0
  117. 2160    GET#1,800*MOJI+SPEED*A+1
  118. 2170    PX=CVI(PX$):PY=CVI(PY$)
  119. 2180    CIRCLE(PX,PY),12,%(COL+7),,,,F
  120. 2190   WHILE PX>0 AND PY>0
  121. 2200    A=A+1
  122. 2210    GET#1,800*MOJI+SPEED*A+1
  123. 2220    PX=CVI(PX$):PY=CVI(PY$)
  124. 2230    IF PX>0 AND PY>0 THEN CIRCLE(PX,PY),12,%(COL+7),,,,F
  125. 2240   WEND
  126. 2250   COL=ABS(COL-1)
  127. 2260   MOUSE 1,,,1
  128. 2270  ENDIF
  129. 2280  PCMPLAY YOMI,127
  130. 2290  RETURN
  131. 2300 '
  132. 2310 *SELECT
  133. 2320 '--------------------------------------------------------------------
  134. 2330 ' 五十音ボタンで選ばれた文字を番号に変換し、変数MOJIに代入する。
  135. 2340 '--------------------------------------------------------------------
  136. 2350  MOJI=((MX-420) \ 40)+((MY-60) \ 40)*5
  137. 2360  IF MOJI=36 OR MOJI=38 OR MOJI=46 OR MOJI=48 THEN RETURN
  138. 2370  IF MOJI=37 THEN MOJI=36
  139. 2380  IF MOJI>38 THEN MOJI=MOJI-2
  140. 2390  IF MOJI=45 THEN MOJI=44
  141. 2400  IF MOJI=47 THEN MOJI=45
  142. 2410  LINE( 42,122)-(377,437),PSET,%15,BF
  143. 2420  COL=0
  144. 2430  GOSUB *DISPLAY
  145. 2440  RETURN
  146. 2450 '
  147. 2460 *LOAD_YOMI
  148. 2470  IF MOJI<10 THEN
  149. 2480   YOMI$="SND\0"+MID$(STR$(MOJI),2)+".SND"
  150. 2490  ELSE
  151. 2500   YOMI$="SND\"+MID$(STR$(MOJI),2)+".SND"
  152. 2510  ENDIF
  153. 2520  LOAD@ YOMI$,YOMI
  154. 2530  RETURN
  155. 2540 '
  156. 2550 *PALETTE
  157. 2560  PALETTE  0,[  0,  0,  0]
  158. 2570  PALETTE  1,[  0,  0,240]
  159. 2580  PALETTE  2,[128,  0,128]
  160. 2590  PALETTE  3,[192,240,176]
  161. 2600  PALETTE  4,[208,240,224]
  162. 2610  PALETTE  5,[176,240,112]
  163. 2620  PALETTE  6,[ 80,160, 48]
  164. 2630  PALETTE  7,[128,128,128]
  165. 2640  PALETTE  8,[ 64, 64, 64]
  166. 2650  PALETTE  9,[  0,240,  0]
  167. 2660  PALETTE 10,[240,  0,192]
  168. 2670  PALETTE 11,[240,  0,  0]
  169. 2680  PALETTE 12,[240,112,128]
  170. 2690  PALETTE 13,[240,240,160]
  171. 2700  PALETTE 14,[240,240,  0]
  172. 2710  PALETTE 15,[255,255,255]
  173. 2720  RETURN
  174.